import request from './request'

/**
 * 获取仪表板数据
 * @returns {Promise}
 */
export function getDashboardData () {
  return request({
    url: '/admin/dashboard',
    method: 'get'
  })
}

/**
 * 获取系统日志
 * @param {Object} params
 * @param {number} params.pageNum - 页码
 * @param {number} params.pageSize - 每页大小
 * @param {string} params.level - 日志级别（可选）
 * @returns {Promise}
 */
export function getSystemLogs (params) {
  return request({
    url: '/admin/logs',
    method: 'get',
    params
  })
}

/**
 * 更新系统配置
 * @param {Object} data - 配置信息
 * @returns {Promise}
 */
export function updateSystemConfig (data) {
  return request({
    url: '/admin/config',
    method: 'post',
    data
  })
}

/**
 * 触发数据备份
 * @returns {Promise}
 */
export function triggerBackup () {
  return request({
    url: '/admin/backup',
    method: 'post'
  })
}

/**
 * 获取系统监控数据
 * @returns {Promise}
 */
export function getMonitorData () {
  return request({
    url: '/admin/monitor',
    method: 'get'
  })
}

/**
 * 批量操作商品状态
 * @param {Object} data
 * @param {Array<number>} data.productIds - 商品ID列表
 * @param {number} data.status - 状态 (1:上架, 0:下架)
 * @returns {Promise}
 */
export function batchUpdateProductStatus(data) {
  return request({
    url: '/admin/product/batch-status',
    method: 'put',
    data
  })
}

/**
 * 批量处理预约
 * @param {Object} data
 * @param {Array<number>} data.reservationIds - 预约ID列表
 * @param {string} data.action - 操作类型 (confirm:确认, cancel:取消)
 * @returns {Promise}
 */
export function batchProcessReservations(data) {
  return request({
    url: '/admin/reservation/batch-process',
    method: 'put',
    data
  })
}

/**
 * 数据清理
 * @param {Object} data
 * @param {Array<string>} data.types - 清理类型列表 (expired_reservations:过期预约, cancelled_orders:已取消订单)
 * @returns {Promise}
 */
export function cleanupData(data) {
  return request({
    url: '/admin/cleanup',
    method: 'post',
    data
  })
}

/**
 * 导出系统报表
 * @param {Object} params
 * @param {string} params.reportType - 报表类型 (orders:订单, reservations:预约, all:全部)
 * @returns {Promise}
 */
export function exportReport(params) {
  return request({
    url: '/admin/report/export',
    method: 'get',
    params,
    responseType: 'blob' // 重要：设置响应类型为blob以处理文件下载
  })
}
